package com.chapter.sample.redis.utils;

import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class CheckUtils {

    @Resource
    private RedisTemplate redisTemplate;

    public boolean checkWithBloomFilter(String checkItem, String key) {
        int hashValue = Math.abs(key.hashCode());
        long index = (long) (hashValue % Math.pow(2, 32));
        Boolean existOK = redisTemplate.opsForValue().getBit(checkItem, index);
        log.info("----> key:「{}」对应的坑位下标index：「{}」是否存在 「{}」", key, index, existOK);
        return existOK;
    }
}
